home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / qbprojct.arc / QBPROJCT.DOC < prev    next >
Encoding:
Text File  |  1987-09-29  |  43.8 KB  |  1,189 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                     ┌─────────────────────────────────────┐
  22.                     │   ▄▄▄▄▄▄▄▄▄▄   ▄▄▄▄▄▄     ▄▄▄▄▄▄▄   │
  23.                     │  ▐          ▌ ▐      ▌   ▐       ▌  │
  24.                     │  ▐          ▌ ▐      ▌   ▐       ▌  │
  25.                     │  ▐          ▌ ▐      ▌   ▐       ▌  │
  26.                     │  ▐          ▌ ▐▀▀▀▀▀▀▀▀▌ ▐▀▀▀▀▀▀▀   │
  27.                     │  ▐          ▌ ▐        ▌ ▐          │
  28.                     │  ▐          ▌ ▐        ▌ ▐          │
  29.                     │  ▐ uick   ▄ ▌ ▐ asic   ▌ ▐ roject   │
  30.                     │   ▀▀▀▀▀▀▀▀▀▀▄  ▀▀▀▀▀▀▀▀             │
  31.                     └─────────────────────────────────────┘
  32.  
  33.  
  34.  
  35.  
  36.  
  37.                         (c) Daniel T. Travison Jr., 1987
  38.                                   P.O. Box 165
  39.                              Burnt Hills, NY  12027
  40.                                 GEnie D.Travison
  41.                           FidoNet 107/810 (Dave Bauer)
  42.                     Hotel Henge (518)399-3073 10pm-10am EST
  43.  
  44.                           distributed by FBN Systems
  45.  
  46.                               ALL RIGHTS RESERVED
  47.  
  48.  
  49.                               D I S C L A I M E R
  50.          ┌───────────────────────────────────────────────────────────┐
  51.          │    The author makes no warranties expressed  or implied   │
  52.          │ as to the quality or performance of this program.         │
  53.          │    The author will not  be  held  liable  for any direct, │
  54.          │ indirect, incidental  or consequential  damages resulting │
  55.          │ from  the use of  this program.                           │
  56.          │    Your use of this program constitutes your agreement to │
  57.          │ this disclaimer and your releasing the author from any    │
  58.          │ form of liability or litigation.                          │
  59.          └───────────────────────────────────────────────────────────┘
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.                                    QBProject
  70.                         (c) Daniel T. Travison Jr.  1987
  71.  
  72.  
  73.          Introduction:
  74.  
  75.               Quick Basic is a powerful compiler providing many
  76.          features that make Basic a flexible tool for daily use.  In
  77.          addition, the interactive programming environment and
  78.          debugger greatly ease the common chores during the
  79.          development and testings stages.  However, I have found 2
  80.          limiting features in this package and hope this program may
  81.          provide solutions to both.
  82.  
  83.               The first is the editor.  After using fast PC level
  84.          programer's editors as well as several main frame editors I
  85.          found the editor proved rather primitive when extensive
  86.          editing is required.  Normally this is not a major problem
  87.          but it is awkward to have to shell to DOS then load an
  88.          editor.
  89.  
  90.               The second area provides no support and involves the
  91.          managing of program development.  There is no make facility
  92.          provided to manage the compile and link steps.  This is
  93.          notable when using the separate compilation method for
  94.          compiling stand alone programs.  What can be annoying is when
  95.          the user has other systems that provide these facilities yet
  96.          is forced to use the 'long hand' method of writing batch
  97.          files when using basic.
  98.  
  99.               QBProject attempts to address these 2 specific areas by
  100.          providing a full screen 'fill in the blanks' input screen,
  101.          saving compile and link requirements to 'project' files and
  102.          the ability to use the editor of your choice.  An extended
  103.          version is in the works at this time to provide dependency
  104.          checking as well as a directory interface for editing and
  105.          managing the related source files.
  106.  
  107.  
  108.          Memory Requirements:
  109.  
  110.               QBProject does not require any additional memory over
  111.          what is normally available to compiler.  All compile and link
  112.          steps are performed 'outside' the program.  Specifically, a
  113.          batch files are created to execute the desired function and
  114.          the program is ended.  A flag file is used to store temporary
  115.          values when returning to the program after the batch file is
  116.          run.  I will give more details later under the compile notes.
  117.          A point to note is the editor is called using a shell to DOS.
  118.          This proved to be a much faster approach but does limit the
  119.          memory available to the editor.  If you commonly edit large
  120.          source files and can not load them when shelling from the
  121.          program the most obvious approach is to break the source file
  122.          into separate 'include' files and reference them all from a
  123.          main routine.   The project manager uses such a logical
  124.          layout at the source file level.  I have a primary file
  125.          called QBPROJCT.BAS with six include files for
  126.          initialization, screen routines, file routines, batch
  127.          routines, etc.  With a multiple file editor this makes a very
  128.          flexible and convenient setup.  All include files are named
  129.  
  130.                                      Page 1
  131.  
  132.  
  133.  
  134.  
  135.                                    QBProject
  136.                         (c) Daniel T. Travison Jr.  1987
  137.  
  138.  
  139.          QBPXXXXX.INC to provide logical grouping by file name.  Other
  140.          than this specific case, you should have no problems with
  141.          memory and will not be penalized for memory when compiling or
  142.          linking.
  143.  
  144.  
  145.          Files:
  146.  
  147.               In order to run the project manager correctly you will
  148.          need two files to start.  The first is a batch file called
  149.          QBP.BAT. The second is QBPROJCT.EXE.  The batch file contains
  150.          the following lines:
  151.  
  152.                              ECHO OFF
  153.                              CLS
  154.                              QBPROJCT
  155.                              QBPSTART
  156.  
  157.               The first three lines are self-explanatory.  The fourth
  158.          line is the name of the batch file that the project manager
  159.          creates to perform the different compile and link operations.
  160.          For the project manager to perform as designed you MUST start
  161.          it with this batch file and it MUST be called QBP.BAT.
  162.  
  163.               There are 4 other files that the project manager will
  164.          create.  The first is an actual project file and will have an
  165.          extension of .PRJ. This contains all the information relating
  166.          to a specific project and there will be one for each project.
  167.          In addition, the file QBPROJCT.PRJ is used for storing
  168.          default settings.  This is explained later in the setup
  169.          procedures.
  170.  
  171.               The second file is QBP.ENV.  This is simply a 1 record
  172.          file containing the name of the current project.  Whenever
  173.          the program is exited or a compile/link is executed, this
  174.          file will be updated.  It is not required since it is created
  175.          whenever needed.
  176.  
  177.               The third file is QBPSTART.BAT.  This file contains the
  178.          actual commands for executing a link or compile step.  When
  179.          exiting the project manager this will contain a single line
  180.          setting the current prompt.  If the project manager is
  181.          started using qbprojct.exe instead of qbp.bat, this batch
  182.          file does not get executed correctly.  This file is also
  183.          created and/or updated as needed so it is not necessary that
  184.          it be present at start up.
  185.  
  186.               The fourth is QBPROJCT.ERR. This file contains all
  187.          messages generated by the various compile and link options.
  188.          The file is viewed using the ERROR option on the EDIT menu.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.                                      Page 2
  197.  
  198.  
  199.  
  200.  
  201.                                    QBProject
  202.                         (c) Daniel T. Travison Jr.  1987
  203.  
  204.  
  205.          Environment Settings/Usage:
  206.  
  207.               The project manager uses the environment for two
  208.          separate functions.
  209.  
  210.               The first is to read in the default color settings.  The
  211.          environment label required is QBP= . This should be formatted
  212.          as follows:
  213.  
  214.                               QBP=aabbcc
  215.  
  216.             where:     aa = a 2 digit value for the foreground color
  217.                             with valid values being 00 to 15.
  218.                        bb = a 2 digit value for the background color
  219.                             with valid values being 00 to 07.
  220.                        cc = a 2 digit value for the screen border
  221.                             color with valid values of 00 to 15.
  222.  
  223.               These numbers MUST be expressed as two digits each and
  224.          all three MUST be included for the project manager to
  225.          interpret them correctly.  Values of nine or less will
  226.          require a zero in front of it.  (IE: 01 02 03 .... 09)
  227.  
  228.                The second use of the environment is for the path
  229.          pointing to your library files.  Since Microsoft's Link
  230.          checks the environment for the name LIB, this environment
  231.          name is set each time a compile or link is executed to ensure
  232.          the libraries are located.  The setting for this is based on
  233.          the value entered in the field LIBRARY PATH on the Linker
  234.          menu.  The primary reason for this approach is to keep the
  235.          link command line as short as possible.  If your libraries
  236.          are not in the default directory then this field MUST be
  237.          entered in the setup.  Keep in mind that the batch files for
  238.          compile and link manually set this value.
  239.  
  240.  
  241.          Setup:
  242.  
  243.               There is no specific setup requirements for the project
  244.          manager.  However, you do have the capability of creating a
  245.          default project file called QBPROJCT.PRJ.  When the project
  246.          manager is run without the QBP.ENV file being present it
  247.          looks for QBPROJCT.PRJ and loads it.  If it is not found in
  248.          the default directory then it is created using various
  249.          default values and is then loaded.  This file will also be
  250.          loaded whenever the FILE CLEAR option is selected.  To modify
  251.          this file to contain any settings you wish to be default,
  252.          then either load it specifically or erase the file QBP.ENV
  253.          before running QBP.BAT.  At this point you may change any
  254.          settings and re-save the project file.  When starting a new
  255.          project, simply load this file and make any necessary
  256.          changes.
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                                      Page 3
  263.  
  264.  
  265.  
  266.  
  267.                                    QBProject
  268.                         (c) Daniel T. Travison Jr.  1987
  269.  
  270.  
  271.          Directory Usage:
  272.  
  273.               > QBPROJCT.EXE:  This can be accessed in one of three
  274.                   ways:
  275.  
  276.                   1: located in the default directory.
  277.                   2: located in a directory listed in the environment
  278.                      path setting.
  279.                   3: Modify the file QBP.BAT so that the line QBPROJCT
  280.                      is changed to [drive:][path]QBPROJCT.
  281.                      ie: d:\utility\QBPROJCT
  282.  
  283.               > *.PRJ, QBPROJCT.PRJ, QBP.ENV, QBPSTART.BAT: these
  284.                   files MUST be located in the default or current
  285.                   directory.
  286.  
  287.               > QBP.BAT: This file can be located in any directory
  288.                   found in the path setting.
  289.  
  290.               > QB.EXE: This file must be in the current/default
  291.                   directory or located in a directory listed in the
  292.                   path setting.
  293.  
  294.               > *.LIB: Any libraries required by the linker must be
  295.                   located in the current directory or in the directory
  296.                   indicated in the LIBRARY PATH setting of the project
  297.                   manager.  This includes BCOMXX.LIB.
  298.  
  299.               > EDITOR: The editor you select for the project manager
  300.                   can be accessed one of three ways:
  301.  
  302.                   1: located in the default directory.
  303.                   2: located in a directory listed in the environment
  304.                      path setting.
  305.                   3: The path can be specifically stated in the
  306.                      project manager when entering the EDITOR NAME
  307.                      field in the form [drive:][path]program.ext
  308.                      ie: if you use an editor called EDIT.COM and it
  309.                      is located on drive B in the utility subdirectory
  310.                      then you would enter the following for the editor
  311.                      name:    B:\UTILITY\EDIT or B:\UTILITY\EDIT.COM
  312.  
  313.               > LINK.EXE: This program must be in the current/default
  314.                   directory or a directory listed in the path
  315.                   environment setting.  The project manager uses the
  316.                   name LINK in the link step for the name of the
  317.                   linker.  If your linker has a different name than
  318.                   you must either copy it using LINK for the name
  319.                   (LINK.COM or LINK.EXE) or just rename it.
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.                                      Page 4
  329.  
  330.  
  331.  
  332.  
  333.                                    QBProject
  334.                         (c) Daniel T. Travison Jr.  1987
  335.  
  336.  
  337.               The following is a quick reference to the layout of
  338.          QBProject's menu structure.  Below it you will find the menu
  339.          expanded with descriptions of the various options.  The menus
  340.          are only two levels deep to allow access to all options in a
  341.          minimal number of key strokes.
  342.  
  343.          ┌──Edit
  344.          │  ├─ Source
  345.          │  ├─ Basic
  346.          │  ├─ Errors
  347.          │  └─ Other
  348.          │
  349.          ├──Run
  350.          │
  351.          ├──Basic
  352.          │  ├─ Primary
  353.          │  └─ Buffer
  354.          │
  355.          ├──Project
  356.          │  ├─ Compile
  357.          │  ├─ Link
  358.          │  ├─ Both
  359.          │  ├─ Name
  360.          │  ├─ Editor
  361.          │  └─ Description
  362.          │
  363.          ├──Switches
  364.          │  ├─ Error
  365.          │  ├─ Resume
  366.          │  ├─ Event
  367.          │  ├─ Check
  368.          │  ├─ Speed
  369.          │  ├─ Arrays
  370.          │  ├─ String
  371.          │  └─ Debug
  372.          │
  373.          ├──Linker
  374.          │  ├─ Exe
  375.          │  ├─ Map
  376.          │  ├─ Switches
  377.          │  ├─ Object
  378.          │  ├─ Libraries
  379.          │  └─ Path
  380.          │
  381.          ├──File
  382.          │  ├─ Load
  383.          │  ├─ Save
  384.          │  └─ Clear
  385.          │
  386.          └──Colors
  387.             ├─ Foreground
  388.             ├─ Background
  389.             ├─ Screen border
  390.             └─ Values
  391.  
  392.  
  393.  
  394.                                      Page 5
  395.  
  396.  
  397.  
  398.  
  399.                                    QBProject
  400.                         (c) Daniel T. Travison Jr.  1987
  401.  
  402.  
  403.               The following is an expanded listing of the menu
  404.          structure with detailed descriptions provided for each
  405.          option.  It follows the same layout as the quick reference on
  406.          the preceding page.
  407.  
  408.  
  409.  
  410.  
  411.  
  412.               Edit:         This option provides all the features for
  413.                │            editing various text files.
  414.                │
  415.                ├─── Source: Edit the primary source file.
  416.                │
  417.                ├─── Basic:  Edit any file in the current directory
  418.                │            with an extention of .BAS.
  419.                │
  420.                ├─── Errors: Edit the QBPROJCT.ERR file which contains
  421.                │            a log of all errors and messages generated
  422.                │            by the last compile/link.
  423.                │
  424.                └─── Other:  Edit any file. This allows entering the
  425.                             path as well as file name.
  426.  
  427.  
  428.               Run:          Run executable file created by
  429.                             compile/link
  430.  
  431.  
  432.               Basic:        This option is used for changing the
  433.                │            primary filename as well as the
  434.                │            communications buffer size (if needed)
  435.                │
  436.                ├────Primary: This option is used to set the name of
  437.                │            the basic source file that will be passed
  438.                │            to the compiler
  439.                │
  440.                └────Buffer: This is used to set the incoming
  441.                             communications buffer size.  The /C:XXXX
  442.                             is ALWAYS set so enter a value for this
  443.                             appropriately if you use the
  444.                             communications ports at all in your
  445.                             program.  Please note that if this value
  446.                             is not zero than you should include GWCOM
  447.                             in the object file listing of the linker
  448.                             menu.
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.                                      Page 6
  461.  
  462.  
  463.  
  464.  
  465.                                    QBProject
  466.                         (c) Daniel T. Travison Jr.  1987
  467.  
  468.  
  469.               Project:      This option provides the 'project level'
  470.                │            facilities provided by QB-Project.
  471.                │
  472.                ├────Compile: Compile the source file. Do not link.
  473.                │            This options is designed primarily during
  474.                │            development when you don't think you will
  475.                │            get a clean compile but need the error
  476.                │            listing.
  477.                │
  478.                ├────Link:   Link only.  Used for linking when
  479.                │            recompiling is not needed.
  480.                │
  481.                ├────Both:   This option will perform both the compile
  482.                │            and link steps.  The link step will not be
  483.                │            executed if an error occurs in the compile
  484.                │            step.
  485.                │
  486.                ├────Name:   This option is for entering the name of
  487.                │            the project file to save the project
  488.                │            information.
  489.                │
  490.                ├────Editor: This option is for providing the name of
  491.                │            the editor you wish to invoke for the EDIT
  492.                │            menu options.
  493.                │
  494.                └────Description: This provides a brief description of
  495.                             the current project.
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.               Switches:     This menu option accesses the menu to set
  524.                │            the compiler switches.  These options work
  525.  
  526.                                      Page 7
  527.  
  528.  
  529.  
  530.  
  531.                                    QBProject
  532.                         (c) Daniel T. Travison Jr.  1987
  533.  
  534.  
  535.                │            as toggles.  An 'X' will appear in the
  536.                │            appropriate box after the switch toggled
  537.                │            to indicate it is on.  Pressing the same
  538.                │            switch option will turn off the switch and
  539.                │            the 'X' will disappear.  For more detail
  540.                │            on these switches refer to chapter four of
  541.                │            the Quick Basic reference manual.
  542.                │
  543.                ├────On Error: Toggle the (/x) compiler switch.  This
  544.                │            option should be used whenever an ON ERROR
  545.                │            GOTO and RESUME or RESUME NEXT statements
  546.                │            are used.  This option provides the same
  547.                │            capability as the RESUME switch.
  548.                │
  549.                ├────Resume: Toggle the (/e) compiler switch. This
  550.                │            option is used whenever a RESUME/RESUME
  551.                │            NEXT statement is used.  This option
  552.                │            provides the same capability as the
  553.                │            ON ERROR switch.
  554.                │
  555.                ├────Event:  Toggle the (/v) compiler switch. This
  556.                │            option provides EVENT TRAPPING for the
  557.                │            communications port (ON COM), lightpen (ON
  558.                │            PEN), light pen (ON TIMER), function keys
  559.                │            (ON KEY), an the joystick (ON STRIG).
  560.                │            This option is the same as the CHECK
  561.                │            option but checks between statements.
  562.                │
  563.                ├────Check:  Toggle the (/v) compiler switch. This
  564.                │            option
  565.                │            provides for the same statements as listed
  566.                │            in the EVENT option but checks between
  567.                │            lines.
  568.                │
  569.                ├────Speed:  Toggle the (/q) compiler switch.  This
  570.                │            option will cause the compiler to optimize
  571.                │            the object code for speed. If it is off,
  572.                │            then optimization is for size.
  573.                │
  574.                ├────Arrays: Toggle the (/r) compiler switch.  This
  575.                │            option causes arrays to be stored in row
  576.                │            order.  If this option is off, then arrays
  577.                │            are stored in column order.  This is not
  578.                │            normally changed unless you have a
  579.                │            specific reason for changing it. (ie: an
  580.                │            assembler module expects row order instead
  581.                │            of column order)
  582.                │
  583.                ├────Minimize: Toggle the (/s) compiler switch.  This
  584.                │            option causes quoted strings to be written
  585.                │            to the object file instead of the symbol.
  586.                │            It is used when memory overflow errors
  587.                │            occur when compiling.
  588.                │
  589.                │
  590.  
  591.  
  592.                                      Page 8
  593.  
  594.  
  595.  
  596.  
  597.                                    QBProject
  598.                         (c) Daniel T. Travison Jr.  1987
  599.  
  600.  
  601.                └───Debug:   Toggle the (/d) compiler switch.  This
  602.                             option causes the generation of debug code
  603.                             provides line locations for error
  604.                             messages, arithmetic overflow, RETURN
  605.                             without GOSUB checking.  The limitation is
  606.                             that it generates a larger and slower
  607.                             executable file.
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.                                      Page 9
  659.  
  660.  
  661.  
  662.  
  663.                                    QBProject
  664.                         (c) Daniel T. Travison Jr.  1987
  665.  
  666.  
  667.               Linker:       This option is used for entering the
  668.                │            various information for the link step to
  669.                │            execute.
  670.                │
  671.                ├────Exe:    This is the name to use when link creates
  672.                │            the executable file.  The name of the
  673.                │            primary source file will be used when this
  674.                │            field is left blank.
  675.                │
  676.                ├────Map:    This is the name of the .MAP file the
  677.                │            linker produces.  The default is NUL which
  678.                │            results in no .MAP file.
  679.                │
  680.                ├────Switches: This field is used supply any switches
  681.                │            to be passed to the compiler.  Generally
  682.                │            this is not used but it is provided in
  683.                │            case any unique conditions require it.
  684.                │
  685.                ├────Object: This field is used to list any additional
  686.                │            .OBJ files that you wish to include in the
  687.                │            Link step.  The .OBJ file produced by the
  688.                │            compile step is automatically included
  689.                │            when linking so you should NOT enter that
  690.                │            in this field.  Also, when using the /c
  691.                │            switch you should include GWCOM in this
  692.                │            field.  File extensions are not entered on
  693.                │            this line.  If the object file is not in
  694.                │            the current directory then you may have to
  695.                │            give the entire path and name for the link
  696.                │            to operate correctly.
  697.                │
  698.                │                   ie:drive:][path]filename.obj
  699.                │
  700.                ├────Libraries: This field is for entering any
  701.                │            additional .LIB files that are needed in
  702.                │            the link step.  It is not necessary to
  703.                │            include GWCOM and file extensions are not
  704.                │            required.  If any libraries that are to be
  705.                │            included are not in the current directory
  706.                │            and are not in the .LIB directory then you
  707.                │            may have to give the full
  708.                │            drive\path\filename.ext.  This should also
  709.                │            be placed AFTER all other libraries so as
  710.                │            not to 'confuse' the linker.
  711.                │
  712.                └────Path:   This field is for entering the drive\path
  713.                             where your .LIB files are located.  If all
  714.                             .LIB files are in the current directory
  715.                             then this field may be left blank.  You
  716.                             may optionally include the trailing back
  717.                             slash but QBProject will add it if you
  718.                             forget.
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                     Page 10
  725.  
  726.  
  727.  
  728.  
  729.                                    QBProject
  730.                         (c) Daniel T. Travison Jr.  1987
  731.  
  732.  
  733.               File:         This menu option contains the selections
  734.                │            for loading/saving/clearing the project
  735.                │            file.
  736.                │
  737.                ├────Load:   This option will display a list of all
  738.                │            .PRJ in the current directory.  You may
  739.                │            move through the list using the UP and
  740.                │            DOWN arrow keys.  HOME will move the
  741.                │            cursor to the top of the current display.
  742.                │            END will move the cursor to the bottom of
  743.                │            the current display.  PGUP and PGDN
  744.                │            display the previous and next pages in the
  745.                │            list respectively.  To select a file to
  746.                │            load, move the highlight to the file
  747.                │            desired and press enter.  To EXIT without
  748.                │            loading a file or changing any information
  749.                │            in memory, press ESCAPE.
  750.                │
  751.                ├────Save:   This option is used for saving the
  752.                │            information in memory to a project file.
  753.                │            When selected, an input field will be
  754.                │            displayed on the second line of the screen
  755.                │            with the current project name as the
  756.                │            default.  You may change the name or
  757.                │            simply press enter to accept it as is.  To
  758.                │            return to the menu without saving, press
  759.                │            ESCAPE.  If a project file already exists
  760.                │            with the same name you will be asked if
  761.                │            you wish to over-write the old file. Press
  762.                │            Y to over-write and N to abort.
  763.                │
  764.                └────Clear:  This option is used to clear the current
  765.                             project file and load the default project
  766.                             configuration.  If you have made any
  767.                             changes without saving them you will be
  768.                             prompted to save the current project file.
  769.                             If you select Y for yes then you will be
  770.                             taken through the same steps continue
  771.                             without saving your changes.
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.                                     Page 11
  791.  
  792.  
  793.  
  794.  
  795.                                    QBProject
  796.                         (c) Daniel T. Travison Jr.  1987
  797.  
  798.  
  799.               Colors:       This menu option contains the selections
  800.                │            for changing the colors that QBProject
  801.                │            uses for display.
  802.                │
  803.                ├────Foreground: This option is for changing the
  804.                │            foreground color.  This toggles the
  805.                │            foreground color through the 16 color
  806.                │            values available on the CGA card.
  807.                │
  808.                ├────Background: This option is for changing the
  809.                │            background color.  This toggles through
  810.                │            the 8 background colors available on the
  811.                │            CGA card.
  812.                │
  813.                ├────Screen Border: This option is for changing the
  814.                │            border that surrounds the active screen
  815.                │            display.  It toggles through the 16 colors
  816.                │            available on the CGA card.
  817.                │
  818.                └────Values: This option will display the current
  819.                             settings for the foreground, background,
  820.                             and border colors.  These 3 values can be
  821.                             combined to form an environment setting
  822.                             that QBProject will use whenever it is
  823.                             run.  QBProject examines the environment
  824.                             each time it is executed for the
  825.                             environment name QBP.  It attempts to use
  826.                             the setting for QBP as values for screen
  827.                             colors.  To use this feature, toggle
  828.                             through the colors until you find the
  829.                             combination that you wish.  Select the
  830.                             VALUES option from the menu to display the
  831.                             actual values for the colors selected.
  832.                             Combine these three values and use them
  833.                             when setting the QBP environment variable.
  834.                             For more information refer to Environment
  835.                             Settings/Usage  at the beginning of the
  836.                             documentation.
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.                                     Page 12
  857.  
  858.  
  859.  
  860.  
  861.                                    QBProject
  862.                         (c) Daniel T. Travison Jr.  1987
  863.  
  864.  
  865.          Using the Menus:
  866.  
  867.               The menu structure provided with QBProject is a form
  868.          that has become very popular with both novice and advanced
  869.          users.  It is primarily designed to provide a list of options
  870.          and brief information for these options in a limited area as
  871.          well as being quick and responsive.  This type of menu system
  872.          is very intuitive and I have attempted to provide the same
  873.          functionality.  Despite the popularity of this type of menu,
  874.          there is a chance the user may not have encountered it so I
  875.          will explain how the menus work and how to use it.  Those
  876.          that are familiar can skip this description.
  877.  
  878.               The menu occupies the top two lines of the display.  The
  879.          topmost provides a list of the options currently available.
  880.          Initially, the leftmost option is displayed in reverse video
  881.          or highlighted.  This indicates that this is currently the
  882.          ACTIVE selection.  On the second line (or prompt line) there
  883.          will be either a description of the ACTIVE selection or a
  884.          list of words indicating that another menu will be displayed
  885.          if this option is selected.  This prompt line is different
  886.          for each menu option. The LEFT and RIGHT arrow keys are used
  887.          to make the other options on the menu the ACTIVE selection.
  888.          As the active selection is changed the previous selection is
  889.          displayed in normal text and the new active selection is
  890.          displayed in reverse video.  The prompt line is changed as
  891.          well to display information for the active selection.  An
  892.          option is selected by either pressing the ENTER (or RETURN)
  893.          key after highlighting the desired option or by simply
  894.          pressing the first letter of the option desired.  In the
  895.          later case, it is not necessary to highlight the option
  896.          before pressing its first letter.  The menus 'wrap' so that
  897.          moving the highlight past the one end of the menu will
  898.          automatically place it at the opposite end.  The HOME and END
  899.          keys are active as well and move the highlight to the first
  900.          and last selection in the menu respectively.
  901.  
  902.               All menus have an escape option to exit.  When at the
  903.          primary menu, (this is the menu of options displayed when the
  904.          program is initially started) pressing escape will indicate
  905.          that you wish to EXIT the program.  You will be asked if you
  906.          wish to exit QBProject.  You may reply by press Y for yes or
  907.          N for no.  Pressing N for no will return you to the primary
  908.          menu.  When you have selected an option that displays a new
  909.          menu, pressing ESCAPE at this new menu will return you to the
  910.          previous menu.
  911.  
  912.               As a final note,  when ever an option is selected that
  913.          requires the user to enter information,  the menu will be
  914.          disabled and/or erased with the cursor being placed in the
  915.          first position of the field to be entered.  In addition, the
  916.          top two lines may also be used to display useful information
  917.          to clarify the current function in progress. When the menu is
  918.          active, the normal cursor will not be displayed.  This
  919.          distinguishes between the 2 active screen modes for
  920.          QBProject, the MENU mode and the EDIT mode.
  921.  
  922.                                     Page 13
  923.  
  924.  
  925.  
  926.  
  927.                                    QBProject
  928.                         (c) Daniel T. Travison Jr.  1987
  929.  
  930.  
  931.          Field Editing:
  932.  
  933.               Various options require the user to enter information in
  934.          a fixed size field.  When this occurs, the field will be
  935.          displayed in reverse video and the cursor will be placed in
  936.          the first position of the field.  All input is restricted to
  937.          this area.  The following is a list of the keys used for
  938.          editing as well as a description of how these keys operate.
  939.  
  940.               Enter (Return): This key is used to indicate acceptance
  941.                             of the information.  Simply put, when the
  942.                             information is entered, press ENTER or
  943.                             RETURN when you are finished entering or
  944.                             changing the field.
  945.  
  946.               Escape:       This key works as an abort key.  Pressing
  947.                             this key will restore the field to the
  948.                             value it contained before any changes were
  949.                             made as well as returning you to the menu.
  950.  
  951.               Right/Left:   These two cursor keys allow you to move
  952.                             around inside the current edit field. The
  953.                             cursor is moved OVER characters and does
  954.                             not erase them.
  955.  
  956.               Home/End:     These two keys move the cursor to the
  957.                             physical start and end of the current edit
  958.                             field.  It does not change any characters.
  959.  
  960.               Backspace:    This key deletes the character to the
  961.                             right of the cursor. At the same time, it
  962.                             moves the cursor left one position and
  963.                             'pulls' the rest of the characters from
  964.                             the cursor to the end of the field with
  965.                             it.  If the cursor is in the first column
  966.                             of the field, this key does not function.
  967.  
  968.               Delete:       This key DELETES the character located at
  969.                             the cursor and pulls the characters to the
  970.                             right of the cursor over one position.
  971.  
  972.               Control-End:  This editing key is invoked by holding
  973.                             down the Control key (Ctrl) and at the
  974.                             same time pressing the END key.  It will
  975.                             erase every character from the cursor
  976.                             position to the end of the field.
  977.  
  978.               Insert:       Currently an INSERT mode is not provided.
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                                     Page 14
  989.  
  990.  
  991.  
  992.  
  993.                                    QBProject
  994.                         (c) Daniel T. Travison Jr.  1987
  995.  
  996.  
  997.          Using the FILE LOAD window:
  998.  
  999.               When the FILE option is selected on the primary menu, a
  1000.          new menu is displayed with the options Load, Save, Clear.
  1001.          When the LOAD option is selected, a window will 'pop up' over
  1002.          the middle of the display.  This window displays a list of
  1003.          the .PRJ files in the current directory and acts as a window
  1004.          onto the entire list.  A maximum of 18 file names can be
  1005.          viewed through this window and QBProject can handle up to one
  1006.          hundred project files.
  1007.  
  1008.               The PAGE UP and the PAGE DOWN keys are used to view
  1009.          other files in the list not currently in the window.  These
  1010.          keys will page through the list of file names 18 at a time
  1011.          until the beginning or end of the list has been reached.
  1012.  
  1013.               One file in the display will be highlighted.  This
  1014.          highlight is used to select a file to load.  The UP and DOWN
  1015.          arrow keys are used to move the highlight within the display
  1016.          window.  Using the UP arrow key when the highlight is at the
  1017.          top of the display window will cause the list to scroll down
  1018.          each time the key is pressed.  Scrolling stops when the top
  1019.          of the list has been reached.  The DOWN arrow key has just
  1020.          the opposite result.  When at the bottom of the display
  1021.          window, pressing the DOWN arrow key will cause the list to
  1022.          scroll up each time the key is pressed.  Scrolling stops when
  1023.          the bottom of the list has been reached.
  1024.  
  1025.               The HOME and END keys are used to move the highlight to
  1026.          the top and the bottom of the window display respectively.
  1027.          The filenames are not changed, simply the position of the
  1028.          highlight.
  1029.  
  1030.               The ENTER (or RETURN) key is used to select the
  1031.          currently highlighted file for loading.   The ESCAPE key
  1032.          follows the normal convention and ABORTS the current function
  1033.          and returns you to the menu.
  1034.  
  1035.               As a final note, while the FILE LOAD window is active,
  1036.          the menu at the top of the screen is erased and information
  1037.          is displayed indicating the use of the keys for selecting a
  1038.          file to load.
  1039.  
  1040.  
  1041.          The Status Line:
  1042.  
  1043.               The status line is the 25th line of the display.  It is
  1044.          used to display the current project as well as a SAVE
  1045.          indicator that is turned on when ever changes are made to the
  1046.          information in memory.  The project name is located on the
  1047.          left side of the status line.  The save flag is on the right.
  1048.          Any time a change is made the word SAVE will appear on the
  1049.          right side of the status line.  Saving the project file,
  1050.          clearing the file, or loading a new file will turn this off.
  1051.  
  1052.  
  1053.  
  1054.                                     Page 15
  1055.  
  1056.  
  1057.  
  1058.  
  1059.                                    QBProject
  1060.                         (c) Daniel T. Travison Jr.  1987
  1061.  
  1062.  
  1063.          Dollars and Sense:
  1064.  
  1065.               Basically, we are using the Shareware technique of
  1066.          distribution.  This is an honor system where the user is
  1067.          allowed to try the program to determine if the program meets
  1068.          the needs of the user.   The program is distributed using
  1069.          local and national BBS systems.  This allows the cost of
  1070.          distribution to be minimal while providing an easy method of
  1071.          obtaining the program.  It also allows the developer to price
  1072.          the program far below commercial rates since a minimal cost
  1073.          for distribution is incurred.
  1074.  
  1075.               With that aside, we present the dollar side.  We are
  1076.          requesting a $10.00 registration fee for the use of
  1077.          QBProject.  We have determined this price to be VERY
  1078.          reasonable considering the capabilities provided.  This
  1079.          allows the use of QBProject on a single machine.  Quantity
  1080.          purchases are available on an individual basis.
  1081.  
  1082.               Now to the Sense.  We plan to use QBProject as our
  1083.          primary interface to a number of modules which will enhance
  1084.          the capabilities and provide a total Basic project management
  1085.          system.  Each module will be capable of standalone execution
  1086.          but will also provide the ability to interface to QBProject.
  1087.          The following is a list of enhancements scheduled for the
  1088.          near future.
  1089.  
  1090.                    *1: Dependency checking based on the date.
  1091.                    *2: Directory interface to Manage ALL files related
  1092.                        to a particular project .
  1093.  
  1094.                     2: MASM interface.
  1095.                     3: Print capabilities:
  1096.                        a: Print all include files with the primary
  1097.                           source file.
  1098.                        b: Subprogram, Gosub, FN cross reference for
  1099.                           ALL files in a project group.
  1100.                     4: Extensive system documetation for ALL files in
  1101.                        a project group.
  1102.  
  1103.                     * These two options are enhancements to
  1104.                       QBPROJCT.EXE itself and will be available in
  1105.                       the next major release (v2.0)
  1106.  
  1107.               Any user registering QBProject will be entitled a 50%
  1108.          discount on future MAJOR releases as well as a 50% discount
  1109.          for all standalone modules.  Starting with version 2.0, users
  1110.          will be notified of all MAJOR and MINOR releases.  Minor
  1111.          upgrades are available to registered users simply by
  1112.          requesting them.  Keep in mind, you are allowed these
  1113.          discounts ONLY when registering QBProject itself and not the
  1114.          standalone modules.
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                                     Page 16
  1121.  
  1122.  
  1123.  
  1124.  
  1125.                                    QBProject
  1126.                         (c) Daniel T. Travison Jr.  1987
  1127.  
  1128.  
  1129.               All registration forms should be sent to the following
  1130.          address:
  1131.  
  1132.                         FBN Systems
  1133.                         P.O. Box 165
  1134.                         Burnt Hills, New York, 12027
  1135.  
  1136.                         (New York residents add 7% sales tax.)
  1137.  
  1138.  
  1139.               Inquires, questions and support can be sent to the above
  1140.          address or through one of the following electronic mediums:
  1141.  
  1142.              GEnie address:   D.Travison
  1143.  
  1144.              FidoNet node:    107/810  (Dave Bauer or Dan Travison)
  1145.                                 (518)477-8260 (10pm to 7am EST)
  1146.  
  1147.              Hotel Henge BBS: (518)399-3073 (10pm - 10am)
  1148.                                 reply to Dan Travison
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                                     Page 17
  1187.  
  1188.  
  1189.